package com.jj.network;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.NotificationCompat;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.File;

/**
 * Created by qmsoft05 on 2016/6/16.
 */
public enum UpdateApp {
    DOWNLOAD;
//    private final int NOTIFICATION_ID = 0x12;
//    private NotificationCompat.Builder notification;
//    private NotificationManagerCompat manager;
//    private boolean isDownload = false;
//
//    public void setDownload(boolean download) {
//        isDownload = download;
//    }
//
//    /**
//     * 更新APP
//     * @param context
//     * @param ver
//     * @param control
//     */
//    private void updateAPP(final Context context, String ver, final DialogControl control) {
//        // 获取缓存路径
//        final File cacheDir = FileUtils.getDiskCacheDir(context, Configures.PATH_DOWNLOAD);
//        if (!cacheDir.exists()) {
//            cacheDir.mkdirs();
//        }
//        final String fileName = "yundcm_" + ver + ".apk";
//        final String path = cacheDir.getPath() + File.separator + fileName;
//        if (FileUtils.fileIsExists(path)) {
//            Intent intent = new Intent(Intent.ACTION_VIEW);
//            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//            intent.setDataAndType(Uri.fromFile(new File(path)), "application/vnd.android.package-archive");
//            context.startActivity(intent);
//            return;
//        }
//        if (Build.VERSION.SDK_INT >= 15) {
//            notification = new NotificationCompat.Builder(context);
//            notification.setAutoCancel(false).setOngoing(true).setSmallIcon(android.R.drawable.stat_sys_download).setContentTitle("正在下载最新版本").setContentText("正在下载");
//            notification.setProgress(100, 0, false);
//            manager = (NotificationManagerCompat) context.getSystemService(Context.NOTIFICATION_SERVICE);
//            manager.notify(NOTIFICATION_ID, notification.build());
//        } else {
//            if (control != null) {
//                control.showWaitDialog("正在下载最新版本");
//            }
//        }
//        QMHttp.API.downloadFile(Configures.HTTP_SERVER_URL + "/android/m." + ver + ".apk", new DownloadCall(cacheDir.getPath(), fileName) {
//
//            @Override
//            public void onProgress(int sum, int total) {
//                super.onProgress(sum, total);
//                if (sum <= 0) {
//                    return;
//                }
//                if (Build.VERSION.SDK_INT >= 15) {
//                    notification.setContentText("已下载:" + sum + "/" + total).setProgress(total, sum, false);
//                    manager.notify(NOTIFICATION_ID, notification.build());
//                } else {
//                    if (control != null) {
//                        control.showWaitDialog("已下载：" + sum + "/" + total);
//                    }
//                }
//            }
//
//            @Override
//            public void onSuccess(String response) {
//                super.onSuccess(response);
//                if (Build.VERSION.SDK_INT >= 15) {
//                    manager.cancel(NOTIFICATION_ID);
//                } else {
//                    if (control != null) {
//                        control.hideWaitDialog();
//                    }
//                }
//                Intent intent = new Intent(Intent.ACTION_VIEW);
//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//                intent.setDataAndType(Uri.fromFile(new File(response)), "application/vnd.android.package-archive");
//                context.startActivity(intent);
//            }
//
//            @Override
//            public void onError(String error) {
//                super.onError(error);
//                if (Build.VERSION.SDK_INT >= 15) {
//                    if (control != null) {
//                        control.showToast(R.string.qm_download_error);
//                    }
//                    manager.cancel(NOTIFICATION_ID);
//                } else {
//                    if (control != null) {
//                        control.hideWaitDialog();
//                    }
//                }
//                try {
//                    FileUtils.DeleteFile(cacheDir);
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
//
//            @Override
//            public void onEnd() {
//                super.onEnd();
//                notification = null;
//                manager = null;
//            }
//        });
//    }
//
//    /**
//     *  检查更新
//     * @param context
//     * @param ver
//     * @param control
//     * @param isDialog
//     */
//    public void checkUpdate(final BaseActivity context, final int ver, final DialogControl control, final boolean isDialog) {
//        if (isDialog) {
//            control.showWaitDialog(R.string.qm_now_checking_software_new_version);
//        }
//        if (isDownload) {
//            return;
//        }
//        QMHttp.API.getUrlJSON(Configures.HTTP_DOWNLOAD_URL, new StringCall() {
//            @Override
//            public void onSuccess(String response) {
//                try {
//                    JSONObject json = new JSONObject(response);
//                    int newHVer = json.getInt("h5Ver");
//                    if (newHVer > QM_PRE.USER.getH5Ver(context)) {
//                        String url = json.getString("url");
//                        QM_PRE.USER.setH5(context, newHVer, url);
//                    }
//                    final int nowVoCede = json.getInt("newVer");
//                    String changeLog = json.getString("changeLog");
//                    if (ver < nowVoCede) {
//                        AlertDialog.Builder builder = new AlertDialog.Builder(context);
//                        builder.setTitle(R.string.qm_find_new_version);
//                        builder.setMessage(changeLog)
//                                .setCancelable(false)
//                                .setPositiveButton(
//                                        R.string.qm_download,
//                                        new DialogInterface.OnClickListener() {
//                                            public void onClick(
//                                                    DialogInterface dialog,
//                                                    int id) {
//                                                updateAPP(context, nowVoCede+"", control);
//                                                dialog.dismiss();
//                                            }
//                                        })
//                                .setNegativeButton(
//                                        R.string.qm_xczs,
//                                        new DialogInterface.OnClickListener() {
//                                            public void onClick(
//                                                    DialogInterface dialog,
//                                                    int id) {
//                                                dialog.dismiss();
//                                            }
//                                        });
//                        if (!isDownload) {
//                            builder.show();
//                        }
//                        isDownload = true;
//                    } else {
//                        if (isDialog) {
//                            control.showToast(R.string.qm_you_use_is_new_version);
//                        }
//                    }
//                } catch (JSONException e) {
//                    if (isDialog) {
//                        control.showToast("检查软件版本出错，请重试或访问" + Configures.HTTP_SERVER_URL + "手动升级");
//                    }
//                }
//            }
//
//            @Override
//            public void onError(String error) {
//                if (isDialog) {
//                    control.showToast("检查软件版本出错，请重试或访问" + Configures.HTTP_SERVER_URL + "手动升级");
//                }
//            }
//
//            @Override
//            public void onEnd() {
//                if (isDialog) {
//                    control.hideWaitDialog();
//                }
//            }
//        });
//    }
}
